package com.xiaoshuidi.cloud.module.bpm.controller.admin.reserveticket.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.math.BigDecimal;
import javax.validation.constraints.*;

/**
* 预约工单 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class ReserveTicketBaseVO {

    @Schema(description = "客户类型", required = true)
    private String customerType;

    @Schema(description = "客户姓名", required = true)
    @NotNull(message = "客户姓名不能为空")
    private String customerName;

    @Schema(description = "性别 1:男 2:女", required = true)
    @NotNull(message = "性别 1:男 2:女 不能为空")
    private String customerGender;

    @Schema(description = "联系方式", required = true)
    @NotNull(message = "联系方式不能为空")
    private String mobile;

    @Schema(description = "客户来源", required = true)
    @NotNull(message = "客户来源不能为空")
    private String customerOrigin;

    @Schema(description = "紧急程度", required = true)
    private String urgencyLevel;

    @Schema(description = "入住时间")
    private LocalDate checkInDate;

    @Schema(description = "预约日期", required = true)
    @NotNull(message = "预约日期不能为空")
    private LocalDate reserveDate;

    @Schema(description = "预约时间段前端数组下标，前端回显用")
    private Integer reserveTimeIndex;

    @Schema(description = "预约时间段-开始", required = true)
    //@NotNull(message = "请录入预约时间")
    private String reserveTimeStart;

    @Schema(description = "预约时间段-结束", required = true)
    //@NotNull(message = "请录入预约时间")
    private String reserveTimeEnd;

    @Schema(description = "租期(月)")
    private Byte rentTerm;

    @Schema(description = "最低金额")
    private BigDecimal priceMin;

    @Schema(description = "最高金额")
    private BigDecimal priceMax;

    @Schema(description = "地址")
    private String address;

    @Schema(description = "人数")
    private Byte peopleNum;

    @Schema(description = "租房数量")
    private Byte rentNum;

    @Schema(description = "门店id")
    @NotNull(message = "门店不能为空")
    private Long apartmentId;

    @Schema(description = "门店名")
    @NotNull(message = "门店不能为空")
    private String apartmentName;

    @Schema(description = "房型")
    private String houseType;

    @Schema(description = "房源id")
    private Long roomId;

    @Schema(description = "房源全名")
    private String roomFullName;

    @Schema(description = "跟进人员id")
    private Long followUpUserId;

    @Schema(description = "跟进备注")
    @Size(max = 1000, message = "备注不能超过1000字~")
    private String remark;

    @Schema(description = "进度")
    private String progress;

    @Schema(description = "状态")
    private String status;

    @Schema(description = "工单来源")
    private String ticketFrom;

    @Schema(description = "部门id")
    private Long deptId;

}
